package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.PageResult;
import com.example.pojo.dto.GoodsQueryDto;
import com.example.pojo.entity.Goods;
import com.example.pojo.vo.GoodsQueryVo;
import java.util.List;

/**
 * 宠物用品 service 层接口
 */
public interface GoodsService extends IService<Goods> {

    /**
     * 增加宠物用品
     *
     * @param goods 宠物用品
     */
    void add(Goods goods);

    /**
     * 分页查询宠物用品
     *
     * @param pageNum 页码
     * @param pageSize 页大小
     * @param dto 条件
     * @return 分页结果
     */
    PageResult<GoodsQueryVo> pageQuery(Integer pageNum, Integer pageSize, GoodsQueryDto dto);

    /**
     * 根据宠物用品id，查询宠物用品
     *
     * @param id 宠物用品id
     * @return 宠物用品
     */
    GoodsQueryVo queryById(Integer id);

    /**
     * 根据条件查询全部宠物用品
     *
     * @param dto 条件
     * @return 宠物用品列表
     */
    List<GoodsQueryVo> queryAll(GoodsQueryDto dto);

    /**
     * 修改宠物用品
     *
     * @param goods 宠物用品
     */
    void update(Goods goods);

    /**
     * 根据宠物用品id，删除宠物用品
     *
     * @param id 宠物用品id
     */
    void delete(Integer id);

    /**
     * 根据宠物用品id列表，删除宠物用品
     *
     * @param ids 宠物用品id列表
     */
    void deleteBatch(List<Integer> ids);
}
